#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :process_pool.py
# @Time      :2021/10/15 22:03
# @Author    :Chen

'进程池'

from multiprocessing import Pool
import os, time, random

def long_time_task(name):
    print("Run task %s (%s)..."%(name,os.getpid()))
    start =time.time();
    time.sleep(random.random()*3)
    end = time.time();
    print("Task %s runs %0.2f seconds."%(name,(end-start)))

if __name__=='__main__':
    print("Parent process %s."%os.getpid())
    p = Pool(4)
    for x in range(5):
        p.apply_async(long_time_task,args=(x,))
    print('Waiting for all subprocesses done...')
    p.close()
    p.join()
    print('All subprocesses done.')